Data security has been a concern in data storage for many decades. Presently, two approaches are derived to secure stored data.
The most conventional approach to secure stored data is to use a password. Unfortunately, passwords suffer two major shortcomings. First, they are not particularly difficult for a unauthorized person to discover, for example, by the user's having written it down, by knowing information about the user that can lead to an educated guess, by brute-force trial-and-error experimentation, or by exploiting a password resetting mechanism. Second, even without the password, an unauthorized person can exploit architectural weaknesses in the system in which the data is stored to bypass the password and gain direct access to the data.
The second approach to secure stored data is to encrypt the data using an encryption key. Although encryption generally lacks the above-described disadvantages of passwords, encoding of the stored data has several of its own problems. First, encryption typically introduces into substantial inefficiencies into the data and its storage, because encryption often requires additional storage for the encrypted data and/or additional processing to gain access to and subsequently store the data. Second, encryption typically uses one of a small number of mathematical techniques to encrypt the data. The techniques can consume significant processing resources. Third, virtually all encryption techniques fall short of being “perfect” in that the encrypted data contains embedded information which, given sufficient time and processing resources, can be used to break the encryption. Accordingly, once the mathematical encryption technique is identified or sufficient quantities of encrypted data are acquired, it is often possible to decrypt the data. As processing power, including the processing power demonstrated by vast networks of otherwise independent computers, increases the amount of time and effort required to break an imperfect encryption code decreases. While encrypting with random number sequences can address some of these problems, few absolute random number encryption approaches are readily available in the context of deterministic digital computer systems.